import socket

# 需求：即时聊天
# socket.SOCK_STREAM : TCP类型
# 这个服务器端的socke1t只是负责接受客户端的连接请求，不负责和客户端的具体聊天
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

server_socket.bind(('', 8000))

# 数字表示服务器允许最大的等待建立连接的个数
server_socket.listen(128)

# 接收客户端的连接，返回具体聊天的socket2
# accept()是一个阻塞函数
socket2, client_addr = server_socket.accept()

while True:
    # 正式开始聊天，socket2负责具体的聊天
    msg = socket2.recv(1024).decode('utf8')
    if msg == 'quit':
        break

    print(f'来自客户端IP为:{client_addr[0]}，端口号为：{client_addr[1]}的消息：{msg}')

    # 给客户端发送聊天信息
    send_msg = input('服务器>>')
    socket2.send(send_msg.encode('utf8'))

socket2.close()  # 断开连接
server_socket.close()
